using System;
using System.Collections.Generic;
using HDL_ON.DAL.Server;
using HDL_ON.Entity;
using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock;
using Shared;
using static HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod;
namespace HDL_ON.UI.UI2.FuntionControlView.HisenseTV
{
public class Send
{
private static Send sendMethod = null;
///
/// 获取对象
///
public static Send Current
{
get
{
if (sendMethod == null)
{
sendMethod = new Send();
}
return sendMethod;
}
}
///
///删除设备
///
/// 设备id
/// 成功返回true
/// 是否需要提示,默认提示
public void DelDevice(string deviceId, Action action, TipType tipType = TipType.flicker)
{
Dictionary d = new Dictionary();
d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
d.Add("deviceIds", new List { deviceId });//设备id
var responsePackNew = UI.Music.SendMethod.Current.RequestServerhomeId(d, NewAPI.Api_Post_UnbindDeviceToHome, "删除海信电视");
if (!this.DataChecking(responsePackNew, tipType))
{
action?.Invoke(false);
}
action?.Invoke(true);
}
///
/// 发送控制命令
///
/// 当前设备
/// 发送控制数据
public void SendControlCommand(Function function, Dictionary dic,Action action)
{
new System.Threading.Thread(() =>
{
var result = DriverLayer.Control.Ins.SendWriteCommand(function, dic, false, 0);
action?.Invoke(result);
})
{ IsBackground = true }.Start();
}
///
///请求服务器(与住宅有关:例如;homeId)
///
/// 发送数据
/// 请求地址(不是绝对地址)
/// 标记->描述接口(自定义)
///
public ResponsePackNew RequestServerhomeId(object o, string api_Url, string tag, int mTimeout = 3)
{
Log($"{DateTime.Now}->发送->{tag}", api_Url, o.ToString());
var requestJson = HttpUtil.GetSignRequestJson(o);
var r = HttpUtil.RequestHttpsPostFroHome(api_Url, requestJson, mTimeout);
Log($"{DateTime.Now}->回复->{tag}", "", Newtonsoft.Json.JsonConvert.SerializeObject(r));
return r;
}
///
///
/// 检验数据回复成功或者失败
///
/// 回复数据对象
/// 是否需要提示
///
private bool DataChecking(ResponsePackNew responsePackNew, TipType tipType)
{
if (responsePackNew.Data == null || responsePackNew.Code != "0" || responsePackNew.Data.ToString() == "")
{
if (TipType.flicker == tipType)
{
if (responsePackNew == null)
{
responsePackNew = new ResponsePackNew { message = "没回复,请确认网络是否正常.", Code = "-1", };
}
Application.RunOnMainThread(() =>
{
//new Tip()
//{
// CloseTime = 1,
// Text = responsePackNew.message + "(" + responsePackNew.Code + ")",
// Direction = AMPopTipDirection.None,
//}.Show(MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1));
CommonMethod.Current.ShowTip(responsePackNew.message + "(" + responsePackNew.Code + ")", 3);
});
}
return false;
}
return true;
}
///
/// 打印日志
///
/// 打印标记
/// 打印内容
public void Log(string tag, string url, string content)
{
#if DEBUG
Console.WriteLine(tag + $"\r\n{url}\r\n{content}");
#endif
}
}
}